/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.jomijushi.fid.servicios;

import com.jomijushi.fid.dao.ProductoVentaImplementsDAO;
import com.jomijushi.fid.dao.ProductoVentaInterfazDAO;
import com.jomijushi.fid.dominio.FidProductoVenta;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.PersistenceContext;

/**
 *
 * @author Juan Grados
 */
public class ProductoVentaImplementsService extends JpaService<Integer, FidProductoVenta> implements ProductoVentaInterfazService {

    private ProductoVentaInterfazDAO productoDAO = new ProductoVentaImplementsDAO();
   

    public boolean registrarProducto(FidProductoVenta producto)
    {
        boolean result = true;
        EntityManager em = emf.createEntityManager();
        em.getTransaction().begin();        
        try{
            productoDAO.setEntityManager(em);
            productoDAO.persist(producto);
            em.getTransaction().commit();
        }catch(Exception e){
            result = false;
            em.getTransaction().rollback();
        }finally{
            em.close();
            return result;
        }
    }

    public FidProductoVenta buscarProductoPorId(Integer id)
    {
        
        EntityManager em = emf.createEntityManager();
        em.getTransaction().begin();
        try{
            FidProductoVenta fidProductoVenta = new FidProductoVenta();
            productoDAO.setEntityManager(em);
            System.out.println("id" + id);
            System.out.println("productoDAO" + productoDAO);
            fidProductoVenta = productoDAO.findById(id);
            System.out.println("product venta" + fidProductoVenta);
            em.getTransaction().commit();
            return fidProductoVenta;
        }catch(Exception e){
            em.getTransaction().rollback();
        }finally{
            em.close();
        }
        return null;
    }

    public void editarProducto(FidProductoVenta fidProductoVenta)
    {
        EntityManager em = emf.createEntityManager();
        em.getTransaction().begin();
        try{
            productoDAO.setEntityManager(em);
            productoDAO.merge(fidProductoVenta);
            em.getTransaction().commit();
        }catch(Exception e){
            em.getTransaction().rollback();
        }finally{
            em.close();
        }
    }

    public void removerProducto(FidProductoVenta fidProductoVenta)
    {
        System.out.println("Removiendo" + fidProductoVenta);
        EntityManager em = emf.createEntityManager();
        em.getTransaction().begin();
        try{
            productoDAO.setEntityManager(em);
            productoDAO.remove(fidProductoVenta);
            em.getTransaction().commit();
        }catch(Exception e){
            System.out.println("error Removiendo producto" + e);
            em.getTransaction().rollback();
        }finally{
            em.close();
        }
    }
}
